#ifndef _GAME_H_
#define _GAME_H_

class CGraphics;

class CGame
{
private:
	static CGame __this;
	
	u16*		m_bufferMain;
	u16*		m_bufferSub;
	
	CGraphics	*m_graphicsMain;
	CGraphics	*m_graphicsSub;
	
	BOOL		m_mainScreenUp;
	
	CGame();
public:
	~CGame();
	
	static CGame* getInstance() {return &__this;}
	
	void VBlank() {};
	u16*	getMainBuffer() {return m_bufferMain;}
	u16*	getSubBuffer() {return m_bufferSub;}
	
	void Pause(BOOL){}
	void Start(){}
	
	BOOL DisplayCardRemovedMessage() {return TRUE;}
	
	BOOL init();
	
	void timerCallback();
	void frameDelay();
	
	
	void setMainScreenUp(BOOL up) { m_mainScreenUp = up; }
	CGraphics* getGraphicsMain() {return m_graphicsMain;}
	CGraphics* getGraphicsSub() {return m_graphicsSub;}
	
	CGraphics* getGraphicsUp(){ return m_mainScreenUp?m_graphicsMain:m_graphicsSub;	}
	CGraphics* getGraphicsDown(){ return m_mainScreenUp?m_graphicsSub:m_graphicsMain;	}
		
};

#endif //_GAME_H_